package com.szj.service.impl;

import com.szj.mapper.EmpMapper;
import com.szj.pojo.JobOption;
import com.szj.service.ReportService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

@Service
public class ReportServiceImpl implements ReportService {
    @Autowired
    private EmpMapper empMapper;
    public JobOption getEmpJobData() {
        //1.调用mapper接口, 获取统计数据
        List<Map<String, Object>> list = empMapper.countEmpJobData(); // [{pos=教研主管, num=3}, {pos=讲师, data=2}, {pos=python, data=1}]

        //2.组装结果，并返回


//        List<String> jobList = new ArrayList<>();
//        List<Integer> dataList = new ArrayList<>();
//        for (Map<String, Object> map : list) {
//            jobList.add(map.get("pos").toString());
//            dataList.add(Integer.parseInt(map.get("num").toString()));
//        }

        //使用Java8的流式操作，将list中的每个map对象转换为两个独立的列表，分别存储职位名称和人数。
        //将数据库查询结果（list）中的职位名称（pos）和人数（num）分离为两个独立的列表，用于后续数据处理或前端展示。
        List<Object> jobList = list.stream().map(datamap -> datamap.get("pos")).toList();
        List<Object> dataList = list.stream().map(datamap -> datamap.get("num")).toList();
        return new JobOption(jobList, dataList);
    }

    //获取员工性别数据
    public List<Map<String, Object>> getEmpGenderData() {
        return empMapper.countEmpGenderData();
    }
}
